Method, system, and computer program product for managing controlled residential or non-residential environments

ABSTRACT

A control server, or similar central processor, manages the distribution of data (including audio and video), voice, and control signals among a plurality of devices connected via a wired and/or wireless communications network. The devices include audio/visual devices (such as, televisions, monitors, PDAs, notepads, notebooks, MP3, portable stereo, etc.) as well as household appliances (such as, lighting, ovens, alarm clocks, etc.). The control server supports video/audio serving, telephony, messaging, file sharing, internetworking, and security. A portable controller allows a user to access and control the network devices from any location within a controlled residential and/or non-residential environment, including its surrounding areas. The controllers are enhanced to support location-awareness and user-awareness functionality.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of U.S. application Ser. No.10/897,410, filed Jul. 23, 2004, incorporated herein by reference in itsentirety; which is a continuation of U.S. application Ser. No.10/382,897, filed Mar. 7, 2003 (now U.S. Pat. No. 6,792,323),incorporated herein by reference in its entirety; which is acontinuation-in-part of U.S. application Ser. No. 10/180,500, filed Jun.27, 2002, incorporated herein by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to networking, and morespecifically, to distributing information within a network.

2. Related Art

The dawn of the information age has revealed new and excitingopportunities for computer processing capabilities. Personal computershave been deployed in a variety of arenas to gain efficiencies, reducecost, and increase productivity. Miniaturization and portability havemade personal computers more accessible and a more valued tool in manybusiness environments. Personal computers have also become a very usefultool in non-business environments, including educational institutionsand homes.

Home computer networks are gaining increased popularity. Within a home,multiple personal computers can be connected together to permit a userto share files without having to manually carry a diskette from one roomto another. The computer network also permits the user to shareprinters, fax machines, and other devices. Internet access facilitiescan also be provided to permit access to external networks and services.Thus, a user can operate a home computer to gain instant access toinformation from anywhere in the world.

Despite the increasing presence of home computer networks, severalsignificant problems must be overcome. For example, installing a homenetwork can be time extensive and expensive to deploy. Additionally,there is no easy method to integrate home computer networks with otherresidential devices, such as televisions, stereos, DVD players, andother home electronics. Being able to efficiently distribute digitalaudio/video (AV) data among personal computers and other AV devices(such as, televisions, DVD players, PVRs, etc.) is complicated bydiffering and evolving communications standards and/or formats.

Another significant challenge is being able to effectively control thenetworked residential devices. Although a remote control unit can betrained to send signals to components of an entertainment center (suchas, a television, stereo, and VCR), there is no known central devicethat can communicate and control multiple personal computers and otheranalog and/or digital devices at a residence.

Although the combination of improved computer processing capabilitiesand global access to information has resulted in significantadvancements in the information processing age, there exists a need fora simple, inexpensive, yet versatile system that can integrate thefunctions of multiple residential devices connected to a residentialnetwork.

SUMMARY OF THE INVENTION

A method, system and computer program product are herein described formanaging a plurality of devices and/or applications within anenvironment, such as a home, business, school, etc, as well as itssurrounding areas. A control center comprises one or more servers orprocessing systems, and enables centralized command and control of thedevices and/or applications.

The devices and/or applications can include communications equipment(such as, telephones, intercoms, etc.), entertainment systems (such as,televisions, CD/DVD players, gaming applications, stereos, etc.),monitoring systems (such as, security cameras, baby monitors, etc.),security systems (such as, fire alarms, sprinkler systems, locks ondoors or windows, etc.), personal computers (such as, desktops,notebooks, notepads, personal digital assistants, etc.), cookingappliances (such as, ovens, coffee makers, electrical food/beveragewarmers, etc.), comfort systems (such as, heating and air conditioning,humidifiers, dehumidifiers, air purifiers, light switches, lightdimmers, etc.), or the like.

The control center can distribute information (including video, audio,voice, text, graphics, control messages, etc.) to and among the devicesand/or applications. The control center supports video/audio serving,telephony, messaging, file sharing, internetworking, and/or security.

Any platform that is small in physical size, has access to power linesfor continuous and uninterrupted electrical power, and is physicallylocated to facilitate transmission and reception of wireless signals issuitable for housing or hosting the hardware comprising the controlcenter. In an embodiment, a smoke detector serves as a platform for thecontrol center. The smoke detector's ceiling-mounted base and directconnection to a home or office's existing 110 voltage AC power lineprovides an ideal platform for the control center and enablesinformation to be transported throughout the controlled environmenteither through a wireless connection or through the power line.Similarly, the control center can be housed within a wireless accesspoint, which provides the control center with “always-on” and wirelessconnectivity.

A portable controller (such as a digital personal assistant, wirelessnotepad, etc.) can enable a user to interact with the control center.Such interaction includes altering the configuration and performance ofthe other devices and/or applications. Accordingly, the portablecontroller provides remote access to other devices and/or applications,and enables the user to control their functions and/or operations fromany location within the environment. In an embodiment, the controlcenter is located within the portable controller. In another embodiment,the control center is located at a centralized location that is distinctfrom the portable controller.

The portable controllers can be equipped with location-awareness and/oruser-awareness functionality. As such, the control center has theability to track and/or monitor the position of the portable controllersand enable personalized configurations based on the user identity.

One or more control macros can be established, either automatically bythe control center or by the user, to control the operations and/orfunctions of the system components. A control macro includes a set ofcommands that, when executed, enables the control center to managemultiple operations and/or functions of one or more system components.The control macro can be associated with a control macro filename forfuture recall and execution. The control macro is stored at the controlcenter. In an embodiment, the portable controller is programmable toissue a generic control request to the control center to thereby executethe sequence of commands from the control macro.

The control center can access updated electronic program guide (EPG)information stored in a local or internal database. The EPG can bedisplayed on the portable controller or other devices and/orapplications to a user. The control center can also obtain the EPGinformation from an external or remote source via, for example, theglobal Internet.

An EPG interface can be displayed on the portable controller to enable auser to select channels based on the electronic guide information and/orselect programs for recording from the electronic guide. In anembodiment, the EPG interface includes a plurality of channel objects,with each channel object representing a “favorite” programming channelas selected by a user. Each of the channel objects are directly orindirectly linked to a switch and/or electronic guide information for acorresponding favorite channel. As such when selected and activated, theactivated channel object enables a control message to be transmittedthat either retrieves programming information for the correspondingchannel or switches a selected device to the corresponding channel.

In an embodiment, the activation of a channel object transmits one ofthree commands depending on the length of time the channel object isactivated. If the channel object is deactivated prior to the expirationof a first time value (e.g., before two seconds), a command istransmitted to switch a device (e.g., television) to the programmingchannel associated with the activated channel object.

If the channel object is deactivated after the expiration of the firsttime value (e.g., two seconds) but before a second time value (e.g.,four seconds), a command is transmitted to display a quick-view objecton the EPG interface. The quick-view object includes programminginformation for a program listed for transmission on the programmingchannel associated with the activated channel object.

If the channel object is deactivated after the expiration of the secondtime value (e.g., four seconds), a command is transmitted to display ajump-to-guide object on the EPG interface. The jump-to-guide objectincludes electronic guide information for the programming channelsassociated with the plurality of channel objects.

A timer graphic can also be displayed on the EPG interface uponactivation of a channel object. The timer graphic includes an innercircle concentrically aligned with an outer circle. The visualcharacteristics of the inner and outer circles are modified over a timeperiod corresponding to the aforementioned first and second time values.For example, the inner circle can be radially filled over a period oftime equivalent to the first time value (e.g., two seconds). Similarly,the outer circle can be radially filled over a time period equivalent tothe second time value.

BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES

The accompanying drawings, which are incorporated herein and form partof the specification, illustrate the present invention and, togetherwith the description, further serve to explain the principles of theinvention and to enable a person skilled in the pertinent art to makeand use the invention. In the drawings, like reference numbers indicateidentical or functionally similar elements. Additionally, the leftmostdigit(s) of a reference number identifies the drawing in which thereference number first appears.

FIG. 1 illustrates a control system.

FIG. 2 illustrates a control server with archival and/or retrievalcomponents.

FIG. 3 illustrates a control server.

FIG. 4A illustrates a positioning mechanism for a control system.

FIG. 4B illustrates another positioning mechanism for a control system.

FIG. 5 illustrates a flow diagram for tracking and/or monitoring systemcomponents.

FIG. 6 illustrates a flow diagram for commanding and/or controllingsystem components in response to user location.

FIG. 7 illustrates a user interface for presenting control options.

FIG. 8 is an example computer system useful for implementing the presentinvention.

FIG. 9 illustrates a flow diagram for defining a control macro to watcha movie recording.

FIG. 10 illustrates a flow diagram for activating the control macro ofFIG. 9.

FIG. 11 illustrates another control system.

FIG. 12 illustrates another control system.

FIG. 13 illustrates another control system.

FIG. 14 illustrates a cradle for a controller client.

FIG. 15 illustrates another cradle for a controller client.

FIG. 16 illustrates another cradle for a controller client.

FIG. 17A illustrates another cradle for a controller client.

FIG. 17B illustrates another cradle for a controller client.

FIG. 18 illustrates another cradle for a controller client, and acontroller client.

FIG. 19 illustrates another cradle for a controller client.

FIG. 20 illustrates an EPG interface.

FIG. 21 illustrates a flow diagram for presenting programminginformation.

FIG. 22 illustrates an EPG interface with a timer graphic.

FIG. 23 illustrates another timer graphic.

FIG. 24 illustrates a quick-view object.

FIG. 25 illustrates a jump-to-guide window.

DETAILED DESCRIPTION OF THE INVENTION

Table of Contents I. System Overview II. Network Control System III.Control Server and Archive IV. Managing System Functions V. LocationAwareness VI. Profiling Controller Client for Personalized Use VII.Exemplary System ImplementationI. System Overview

This specification discloses one or more embodiments that incorporatefeatures of this invention. The embodiment(s) described, and referencesin the specification to “one embodiment”, “an embodiment”, “an exampleembodiment”, etc., indicate that the embodiment(s) described may includea particular feature, structure, or characteristic, but every embodimentmay not necessarily include the particular feature, structure, orcharacteristic. Moreover, such phrases are not necessarily referring tothe same embodiment. Further, when a particular feature, structure, orcharacteristic is described in connection with an embodiment, it issubmitted that it is within the knowledge of one skilled in the relevantart(s) to effect such feature, structure, or characteristic inconnection with other embodiments whether or not explicitly described.

The present invention includes methodologies and/or techniques for thecentralized command and control of a plurality of devices and/orapplications within a controlled environment, such as a home, business,school, etc. Therefore in embodiments of the present invention, thecontrolled environment is a residential environment. The residentialenvironment pertains to the confines of a home, apartment, mobile home,houseboat, or other types of residences. However in embodiments, theresidential environment includes the surrounding area of the residence,as well as any shelters, constructs, improvements, or the like, within adesignated perimeter.

In other embodiments, the present invention is implemented innon-residential environments. A non-residential environment includes,but is not limited to, an office complex, suite of small offices,production studio, warehouse, entertainment arena, health care facility,hotel, vacation resort, aircraft, ship, automobile, or the like. Inembodiments, the controlled environment for the non-residentialembodiments include not only the actual confines of the aforementionedstructures but also their surroundings within a designated perimeter.

Within the controlled environment of the present invention, one or morecomputer servers, or the like, provide a centralized command and controlcenter for distributing information (including video, audio, voice,text, graphics, control messages, etc.) to the other devices and/orapplications. Such devices and/or applications include communicationsequipment (such as, telephones, intercoms, etc.), entertainment systems(such as, televisions, CD/DVD players, gaming applications, stereos,etc.), monitoring systems (such as, security cameras, baby monitors,etc.), safety/security systems (such as, fire alarms, sprinkler systems,locks on doors or windows, etc.), personal computers (such as, desktops,notebooks, notepads, personal digital assistants, etc.), cookingappliances (such as, ovens, coffee makers, electrical food/beveragewarmers, etc.), comfort systems (such as, heating and air conditioning,humidifiers, dehumidifiers, air purifiers, light switches, lightdimmers, etc.), power outlets, power supplies, or the like.

In an embodiment, a portable device (such as a digital personalassistant, wireless notepad, etc.) enables a user to interact with thecentralized command and control center. Such interaction includesaltering the configuration and performance of the other devices and/orapplications within the controlled environment. Accordingly, theportable device provides remote access to other devices and/orapplications, and enables the user to control their functions and/oroperations from any location within the controlled environment.

For example, a user can operate the portable device to receive arecorded or live video from any location within the controlledenvironment. The video can be presented on a display coupled to theportable device or a monitor within the area that the user is presentlylocated. Accordingly, the user would be able to watch a televisionprogram while lounging near a swimming pool or in a whirlpool bath.Additionally, the user would be able to view video from a baby monitoror a security camera on the portable display device or another display,such as a wireless notepad, desktop computer, television screen, etc.

In embodiments, a user is able to view or listen to media beingpresented on other televisions, personal computers, and/or audiosystems. As such, a “parent” user can monitor television programs, websites, and/or audio recordings that are being viewed by their childrenin other rooms. The present invention includes protocols that enable theparent user to block access to objectionable content.

In embodiments, a user is able to access the centralized command andcontrol center through an external interface, such as the Internet. Auser is able to gain access to devices and/or applications that arelocated within the controlled environment, while the user is travellingor at work. Therefore, the present invention permits a user to log intothe controlled environment to download or store files, receive feedsfrom surveillance equipment, open or secure locks on entry ways, or thelike.

II. Network Control System

As discussed above, the present invention can be implemented inresidential and/or non-residential controlled environments. By way ofexample, the following embodiments are described with reference to aresidential environment. However, it should be understood that thefollowing embodiments could be modified to include non-residentialenvironments as well.

FIG. 1 illustrates a network control system 100 according to anembodiment of the present invention. The present invention contemplatesanalog and digital environments. System 100 is a scaleable, relativelyinexpensive, and versatile residential network. As shown, system 100includes a communications network 180 that interconnects a plurality ofsystem components. The system components include a telephone 102, apositioning unit 104, a computer client 106, a camera 108, a controllerclient 110, a television 112, a control server 114, a monitor 116, anaudio client 118, and a residential appliance 120. Other devices and/orapplications can also be included as a system component.

Control server 114 manages the distribution of information among theother system components. As described in greater detail below, controlserver 114 interacts with the other components to directly or indirectlydistribute data (including audio and/or video), voice, and/or controlmessages over communications network 180. In an embodiment, controlserver 114 commands and controls the operation and/or functions of oneor more of the other system components.

Telephone 102 is one or more wired and/or wireless telecommunicationsdevices. Telephone 102 exchanges telecommunications signals overconventional residential telephone paths and communications network 180.In an embodiment, telephone 102 implements a voice over InternetProtocol (VoIP) to exchange voice communications over a computer network(such as the global Internet), and makes the voice signals available tocommunications network 180. In an embodiment, telephone 102 includesfacsimile functions.

Positioning unit 104 designates spatial locations within the residencethat serves as the hosting environment for system 100. Positioning unit104 is coupled to the other system components (e.g., control server 114)via a wired and/or wireless interface. Positioning unit 104 is operableto designate a floor or room within the residence. Positioning unit 104is also operable to designate a specific location within a floor orroom. Moreover, positioning unit 104 can be situated outside of theresidence to thereby, designate external areas of the residence. In anembodiment, positioning unit 104 is coupled to another system component.In another embodiment, multiple positioning units 104 are distributedthroughout the residence. For example, the positioning units 104 can belocated within, or mounted to, a wall, door, ceiling, floor, etc.Positioning unit 104 is further described below.

Computer client 106 includes a wired and/or wireless personal computer,personal digital assistant (PDA), enhanced telephone, personaltelevision, or other data processing device linked to communicationsnetwork 180. As a personal computer, computer client 106 can be adesktop, notebook, notepad, or the like. A display is coupled tocomputer client 106 to provide a text or graphical user interface (GUI)and enable a user to interactively communicate with control server 114.Input devices for computer client 106 include a keyboard, mouse, verbalcommand interface, mouse wheel, joystick, rudder pedals, touch screen,microphone, joystick, stylus, light pen, or any other type of peripheralunit.

Camera 108 is one or more video cameras, camcorders, or the like. Thepresent invention contemplates both wired and wireless devices. Camera108 can be a part of home security or monitoring system, such as a babymonitor, etc. In an embodiment, camera 108 includes a control unit thatenables remote control of various camera functions, such as, pan, tilt,zoom, focus, iris control, etc.

Controller client 110 is a wired and/or wireless data processing devicethat enables a user to interact and send control messages to controlserver 114 and the other system components. Controller client 110 can bea portable or non-portable version of the devices listed as computerclient 106. For example, computer client 106 can be a personal notebookor notepad computer, PDA, enhanced telephone, or other device linked tocommunications network 180 and including a display with the ability tointeract with the other system components. Hence, controller client 110enables a user to remotely control the operations of various componentsof system 100. In an embodiment, the display for controller client 110is capable of receiving video and/or audio from the other systemcomponents. In an embodiment, controller client 110 includes a flash ROMthat enables wireless downloads and/or uploads.

Television 112 can be a conventional television. In an embodiment,television 112 is enhanced to support interactive and/or personalservices. Personal services include virtual recording, programming,pausing/rewinding live broadcasts, or the like. For example, television112 can be a personal television enhanced to support the MSN® TVservice, hosted by WebTV Networks, Inc. (Mountain View, Calif.), thatsupports WebTV® available from Microsoft Corporation (Redmond, Wash.).In an embodiment, television 112 includes a set-top box for cable and/orsatellite receptions. In an embodiment, television 112 is connected to aPVR, VCR, or DVD player.

Monitor 116 is a wired or wireless display that supports closed-circuitviewing. In an embodiment, monitor 116 is a flat LCD positioned on awall, standing on a desk, table, or counter top, situated near the sideof pool or hot tub, etc. In an embodiment, monitor 116 receives astreaming screen saver that displays static or dynamic images of aphotograph, portrait, etc. when monitor 116 is functioning in aninactive state. In an embodiment, monitor 116 receives feeds from atelevision, stereo, or security/monitoring system (e.g., a babymonitor), etc., when monitor 116 is in an active state.

Audio client 118 is a wired or wireless audio system, such as a stereo,audio server, CD/record/cassette player, MP3 player, etc. Audio client118 can be a microphone as part of a security/monitoring system, such asa baby monitor. In an embodiment, audio client 118 is one or morespeakers or like audio outputs located throughout the residence. Inanother embodiment, audio client 118 is an intercom system, publicannouncement system, door answering service, or the like.

Residential appliance 120 is one or more residential appliances, suchas, but not limited to, a refrigerator, stove, microwave, toaster,coffee-maker, alarm clock, thermostats, humidifiers, sprinkler system,lighting, light dimmers, etc. In an embodiment, control server 114and/or controller client 110 controls the operations and/or functions ofone or more residential appliances 120, such as on/off, timers,modulation (e.g., oven temperatures, etc.), pause, snooze, etc.

The aforementioned system components are not intended to be exhaustive.Other devices (including appliances), applications, and/or the like canbe implemented and are deemed to be within the scope of the presentinvention.

As discussed, communications network 180 provides a transmission mediumfor communicating among the system components. In embodiments, controlserver 114 polices traffic among the other system components. As such,the exchange of information among the system components is routed orotherwise controlled via control server 114. In another embodiment,communications network 180 supports peer-to-peer communications. Assuch, the system components exchange audio, video, other data, and/orcontrol messages directly with each other and without being centrallymanaged by control server 114. Therefore, the present invention can beimplemented without control server 114. In such de-centralizedembodiments, the control and management functions for the communicationsnetwork 180 are distributed and shared by multiple system components sothat the system components can communicate with each other over a wiredand/or wireless medium without a central control server 114.

Communications network 180 is a wired and/or wireless local area network(LAN). Thus, communications network 180 includes wired, wireless, orboth transmission media, including satellite, terrestrial (e.g., fiberoptic, copper, UTP, STP, coaxial, hybrid fiber-coaxial (HFC), or thelike), radio, microwave, free-space optics, and/or any other form ormethod of transmission.

In an embodiment using a wired transmission medium, communicationsnetwork 180 is an Ethernet LAN capable of supporting, for example, onehundred Mbps to one Gbps. In an embodiment, a CAT-5 cable, or the like,is coupled to control server 114 and is distributed to a location withineach room. In an embodiment, the cable is distributed to each systemcomponent, such as television 112, monitor 116, etc. The systemcomponent includes an audio/video (AV) connector that is responsive toreceive the cable.

In an embodiment using a wireless transmission medium, communicationsnetwork 180 supports the IEEE standard 802.11(a) which specifies awireless Ethernet protocol for large-sized video. Using this protocol,communications network 180 can handle up to fifty-four Mbps with aneffective range of ninety feet.

In another wireless embodiment, communications network 180 supports theIEEE standard 802.11(b) which specifies a wireless Ethernet protocol forsmall-size video. With this wireless protocol, communications network180 is effective for ranges approximating 150-300 feet, and capable ofsupporting a nominal bandwidth of eleven Mbps, with 4-5 Mbps effectivebandwidth. In another embodiment, communications network 180 supportsthe IEEE 802.16 WirelessMAN® standard for wireless metropolitan areanetworks. In another embodiment, the Bluetooth™ wireless technology(developed by Bluetooth SIG, Inc.) is used to support short-rangewireless interfaces with system 100.

In an embodiment, communications network 180 includes a telephone lineand/or powerline. In an embodiment, communications network 180 enablesconventional electrical outlets and wiring to interconnect the systemcomponents and enable them to communicate with each other. In anembodiment, communications network 180 includes communicationstechnologies made available from the Home Phone Networking Alliance(HomePNA) or the like. HomePNA technologies enable the operation oftelephone services and home networking, including, but not limited to,video conferencing, video security, VoIP telephony, digital videonetworking, internet sharing, and multi-user gaming.

As discussed above, communications network 180 includes a centralcontrol server 114 to enable the system components to communicate witheach other. In embodiments of the present invention, any platform thatis relatively small in physical size, has access to power lines forcontinuous and uninterrupted electrical power, and is physically locatedto facilitate transmission and reception of wireless signals is suitablefor providing housing, hosting, or the like for central control server114. FIG. 11 illustrates an embodiment of network control system 100that includes a wireless network access point 1180, such as thoseavailable from Linksys Group Inc. (Irvine, Calif.) or Cisco Systems,Inc. (San Jose, Calif.), as a platform for control server 114. Wirelessaccess point 1180 provides control server 114 (FIG. 1) with a centralpoint for connectivity in a wireless network and always-on connectivitynecessary for tracking states of the system components. Additionally,wireless access point 1180 can provide a connection point between awired and wireless network.

In FIG. 11, the system components include controller client 110,television 112, a media player 1112, and a cable box 1108. Other systemcomponents having external control interfaces (e.g., cable or IR) can beincluded, such as telephone 102, positioning unit 104, computer client106, camera 108, control server 114, monitor 116, audio client 118,residential appliance 120, and the like.

The network illustrated in FIG. 11 also includes an infrared/serialbridge 1182. In an embodiment, infrared/serial bridge 1182 complies withthe IEEE 802.11(b) standard for wireless communications. Infrared/serialbridge 1182 exchanges infrared signals with stand-alone systemcomponents, such as television 112, cable box 1108, and media player1112.

FIG. 12 illustrates another embodiment of network control system 100,which includes a plurality of infrared/serial bridges 1182(a)-1182(e).Each infrared/serial bridge 1182(a)-1182(e) interacts with one or morestand-alone components. As shown, infrared/serial bridge 1182(a)interacts with television 112(a), cable box 1108, and media player 1112.Infrared/serial bridge 1182(b) interacts with a tuner 1104 or any typeof proprietary Ethernet device as would be apparent to one skilled inthe relevant art(s). Infrared/serial bridge 1182(c) interacts with aresidential appliance 120(a), namely a thermostat for a HVAC system.Infrared/serial bridge 1182(d) interacts with another residentialappliance 120(b), namely a lamp. Infrared/serial bridge 1182(e)interacts with television 112(b) and a DSS box 1106.

As such, the present invention can integrate legacy devices (e.g.,consumer electronic devices that rely on infrared/serial communicationprotocols), as well as UPnP™ devices and applications defined by theUniversal Plug and Play (UPnP) Forum, as system components. An exampleof a controlled environment implementing an IEEE 802.11(b)infrared/serial bridge is described in the application entitled “LegacyDevice Bridge for Residential or Non-Residential Networks” (U.S. PatentApp. Ser. No. 60/438,296; filed Jan. 7, 2003), which is incorporatedherein by reference as though set forth in its entirety.

FIG. 13 illustrates another embodiment of network control system 100,which includes a smoke detector 1380. Smoke detector 1380 includes anetwork interface card 1382 which enables smoke detector 1380 to serveas yet another platform for control server 114, providing the controlserver with HomePNA and/or wireless (e.g., IEEE 802.11) networkconnectivity. By taking advantage of the smoke detector's location andaccess to power lines, the control server can send data and/or controlmessages throughout the controlled environment either through a wirelessconnection or through the power line. Since most smoke detectors arepresently hard-wired into the home or office power line, the smokedetector platform also provides always-on connectivity for controlserver 114. Another advantage of using a smoke detector as a platformfor control server 114 is that smoke detectors can be ceiling mounted tofacilitate a greater communications range.

FIG. 14 illustrates another device that can be used as a platform forcontrol server 114. The device shown is a cradle 1400 for a remotecontrol unit, such as controller client 110, or another systemcomponent. Alternative views of cradle 1400 are illustrated in FIG. 15and FIG. 16. Cradle 1400 contains a receptacle 1402 for holding theremote control unit or other device. Receptacle 1402 provides anintegrated charging base for the remote control or other device. Powersupply port 1404 supplies power to the remote control when it is dockedin receptacle 1402. Power from power supply port 1404 is converted to DCpower. Power supply port 1404 also provides connectivity with aHomePNA/powerline network.

Cradle 1400 also includes an Ethernet interface 1406 for enablingnetwork connectivity. Additionally, cradle 1400 has a wireless interfacefor enabling wireless network connectivity, such as WiFi (i.e., IEEEstandard 802.11(a) or (b)). Cradle 1400 also has an IR interface 1410 tocommunicate via IR signals. Cradle 1400 may have other transmission anddata ports (e.g., serial (RS-232) or USB) and network interfaces (e.g.,HomePNA/powerline). Such connectivity enables cradle 1400 to serve as abridge for converting packet-based data signals (e.g., WiFi) to IR orserial signals. Cradle 1400 includes LED indicators indicating power1408 and network-connectivity status 1412 of the cradle.

Another embodiment of cradle 1400 is illustrated in FIGS. 17A, 17B, and18. FIG. 19 depicts a cradle in accordance with an embodiment of thepresent invention. As shown in FIG. 19, cradle 1400 includes a wirelessinterface 1902 (such as an 802.11b transceiver) for providing wirelessconnectivity to an IP network. Cradle 1400 includes an IrDA beacon 1908as an interface for communicating with IR-enabled legacy devices. Cradle1400 contains one or more infrared interfaces 1904 for communicatingwith IR-enabled legacy devices. Cradle 1400 contains one or more serialinterfaces 1906 for communicating with serial-enabled legacy devices.Cradle 1400 includes a power supply interface 1910 for communicating viaa HomePNA/powerline network.

IR interface 1410 (see FIGS. 14-18) can include IRDA beacon 1908. In anembodiment, IR interface 1410 comprises an IR transmitter adapted forwireless one-way communication with IR-capable legacy devices. In analternate embodiment, IR interface 1410 comprises an IRtransmitter/receiver pair, or IR transceiver, adapted for wirelesstwo-way communication with IR-capable legacy devices. In accordance withthese embodiments, wireless IR communication with a legacy device isachieved by cradle 1400 in a location that is along a clearline-of-sight path to and within a certain predefined transmission rangeof the legacy device.

In an alternate embodiment, IR interface 1904 comprises an interfaceadapted for wired communication with a legacy device by means of, forexample, an IR dongle. In accordance with this alternate embodiment, thecradle 1400 need not be situated in any particular location foreffective communication with the legacy device.

Smoke detector 1380, wireless network access point 1180, and cradle1400, described herein, are representative devices that can be used asplatforms for control server 114. As described above, any other device,including, but not limited to, a stand alone computer, remote controldevice, power device (including power strip, power conditioner, poweroutlet, power supply, etc.), set-top box, cable box, router, bridge, orthe like, could be included and would not change the scope of theinvention. Any presently available or future developed device can beused that has “always-on” functionality (i.e., access to continuous anduninterrupted electrical power) and is positioned to facilitate wirelesscommunications with the other system components. Such devices caninclude, or be modified to receive, a network interface card (e.g.,network interface card 1382) to enable platform functionality.

It should also be understood that wireless network access point 1180 canbe hosted on any type of “always-on” platform having wireless or wirednetwork connectivity (such as, a smoke detector, ceiling fan, etc.). Assuch, the platform would provide wireless access point (WAP)functionality in addition to and without interfering with itstraditional functionality. By taking advantage of the existing wiringfor a smoke detector, for example, an access point (e.g., wirelessnetwork access point 1180) can be mounted in tandem with the smokedetector. The two can be packaged into the same plastic housing. Awireless access point generally requires an Ethernet connection tobridge it to a wired Ethernet network (which, in turn, may be connectedto a cable or DSL modem). If the Ethernet wiring is not present at thesite of the smoke detector, the wireless access point may be used in arepeater mode, extending the range of another wireless access point thathas an Ethernet connection (see, for example, signal repeater 1202,described herein with reference to FIG. 12).

Smoke detector 1380 is a representative device that can be used as aplatform for wireless network access point 1180. WAP functionality canbe integrated into any other device connected to a power source,including, but not limited to, a ceiling fan, light fixture, wallswitch, carbon dioxide detector, wall outlet, or the like. In anembodiment employing powerline networking, a powerline bridge andwireless access point can be integrated together, avoiding the need tooperate solely in repeater mode.

III. Control Server and Archive

Control server 114 is one or more servers, with each server being one ormore computers providing various shared resources with each other and toother system components. The shared resources include files forprograms, web pages, databases and libraries; output devices, such as,printers, plotters, display monitors and facsimile machines;communications devices, such as modems and Internet access facilities;and other peripherals such as scanners, etc. The communications devicescan support wired or wireless communications, including satellite,terrestrial (fiber optic, copper, coaxial, and the like), radio,microwave, free-space optics, and/or any other form or method oftransmission.

In an embodiment, control server 114 is configured to support thestandard Internet Protocol (IP) developed to govern communications overpublic and private Internet backbones. The protocol is defined inInternet Standard (STD) 5, Request for Comments (RFC) 791 (InternetArchitecture Board). Control server 114 also supports transportprotocols, such as, Transmission Control Protocol (TCP), User DatagramProtocol (UDP), Real Time Transport Protocol (RTP), or ResourceReservation Protocol (RSVP). The transport protocols support varioustypes of data transmission standards, such as File Transfer Protocol(FTP), Hypertext Transfer Protocol (HTTP), Simple Network ManagementProtocol (SNMP), Network Time Protocol (NTP), or the like.

In an embodiment, control server 114 is configured to support variousoperating systems, such as, the Netware™ operating system available fromNovell, Inc. (Provo, Utah); the MS-DOS® and Windows® operating systemsavailable from Microsoft Corporation; the Linux® operating systemavailable from Linux Online Inc. (Laurel, Md.); the Solaris™ operatingsystem available from Sun Microsystems, Inc. (Palo Alto, Calif.); or thelike as would be apparent to one skilled in the relevant art(s).

Control server 114 is operable to query, receive, and/or write tovarious archival and/or retrieval components. The archival and/orretrieval components can be internal and/or external to control server114. For example, control server 114 is configured to receive compressedstreams, filter the streams for metadata (such as, date, time, source,etc.), and store the streams and metadata for future retrieval.

FIG. 2 shows control server 114 connected to various archival and/orretrieval (A/R) components according to an embodiment of the presentinvention. The A/R components include a media archive 202, a tuner 204,a DSS box 206, a cable box 208, a media changer 210, and a media player212. The aforementioned archival and/or retrieval components are notintended to be an exhaustive listing. Other archival and/or retrievalcomponents can be implemented and are deemed to be within the scope ofthe present invention.

The archival and/or retrieval components can be centrally located (asshown in FIG. 2), widely distributed throughout the residence, oraccessible from an external source (such as, a web server communicatingover the global Internet) via a network connection 280. Networkconnection 280 includes a wired and/or wireless LAN or wide area network(WAN), such as an organization's intranet, a local internet, theglobal-based Internet (including the World Wide Web (WWW)), an extranet,a virtual private network, licensed wireless telecommunications spectrumfor digital cell (including CDMA, TDMA, GSM, EDGE, GPRS, CDMA2000, WCDMAFDD and/or TDD or TD-SCDMA technologies), or the like. Networkconnection 280 includes wired, wireless, or both transmission media,including satellite, terrestrial (e.g., fiber optic, copper, UTP, STP,coaxial, hybrid fiber-coaxial (HFC), or the like), radio, free-spaceoptics, microwave, and/or any other form or method of transmission.

Media archive 202 provides one or more storage mediums for various data(including video and audio) and metadata. In embodiments, media archive202 includes a removable storage unit (e.g., floppy disk, CD-ROM, etc.),as described in greater detail below. To support larger volumes ofcontent, one or more integrated databases or a data warehouse system isused to store the content and support control server 114, as describedherein.

In embodiments, media archive 202 includes a relational or objectoriented (OO)/component based database management system, or the like,that controls the storing, retrieving, and updating of data and metadatain the database records. The database management system also controlsdata integration, enforces integrity rules and constraints (includingdata integrity and referential integrity), and enforces securityconstraints.

In embodiments, media archive 202 is a scalable system that stores dataon multiple disk arrays. Data warehousing can be implemented with theSQL Server 2000 application available from Microsoft Corporation, theOracle 9i™ database available from Oracle Corporation (Redwood City,Calif.), or the like. In embodiments, media archive 202 supports OpenDataBase Connectivity (ODBC) or Java DataBase Connectivity (JDBC)protocols.

In embodiments, media archive 202 is an index file database system or aplan file database system, such as the Berkeley DB database resourcesavailable from Sleepycat Software, Inc. (Lincoln, Mass.).

Tuner 204 receives audio and/or video signals from television and/orradio broadcasts. Tuner 204 is one or more individual radio and/ortelevision tuners. In an embodiment, tuner 204 is configured to receiveNTSC/PAL television signals.

DSS box 206 receives audio and/or video broadcast signals from asatellite receiver. Cable box 204 receives audio and/or video broadcastsand pay-for-view unicasts over a copper, UTP, STP, coaxial, optic or HFCinterface.

In addition to receiving broadcast signals, control server 114 is alsoconfigurable to support recording capabilities. As discussed, broadcastcan be recorded to media archive 202. However, control server 114includes one or more record/playback applications or devices, namelymedia player 212 and media changer 210. Media player 212 can be a VCRplayer, DVD player, PVR, video server, virtual recorder, audio server,stereo, CD player, record player, audio tape or cassette player, digitalaudio tape recorder, and/or any other device or application that stores,records, generates, or plays back via magnetic, optical, electronic, orany other storage media. The recordings can be indexed by album, song,artist, genres, or the like.

Media changer 210 records and plays media and/or multimedia similar tomedia player 212. However, media changer 210 is capable of loadingmultiple recordings (e.g., CD, DVD, etc.) to be played without having tobe reloaded. For example, media changer 210 can be a jukebox or likedevice that enables a user to load all available CDs, for example, atonce.

IV. Managing System Functions

Control server 114 provides centralized command and control of variousfunctions within a controlled environment, such as system 100. Thefunctions managed by control server 114 includes video serving, audioserving, telephony, messaging, file sharing, Internet access, andsecurity. According to embodiments of the present invention, a useroperates controller client 110 to establish or re-configure thesefunctions and/or receive media from control server 114 or other systemcomponents (either directly from the other system components orindirectly from the system components via control server 114).

FIG. 3 illustrates an embodiment of control server 114. Control server114 includes various controller modules for managing various systemfunctions. As shown, control server 114 includes a video controller 302,an audio controller 304, a telephony controller 306, a messagingcontroller 308, a file sharing controller 310, an external networkinterface (x-interface) controller 312, and a security controller 314.The controller modules are configured to exchange signals with othersystem components via communications network. The controller modules arealso configured to exchange communications with other A/R components. Asdescribed with reference with FIG. 2, the A/R components include mediaarchive 202, tuner 204, DSS box 206, cable box 208, media changer 210,media player 212, and/or the like.

Video controller 302 manages the exchange of video signals within system100. Video controller 302 receives and/or distributes video signals fordisplays coupled to, for example, computer client 106, television 112,monitor 116, controller client 110, etc. Video controller 302 alsointeracts with the A/R components, such as, media archive 202, tuner204, DSS box 206, cable box 208, media changer 210, media player 212,network connection 280, etc. In embodiments, video controller 302 readsand/or writes to an internal storage medium that is designated forvideo, and that is in addition to, or in lieu of, the A/R components ofthe present invention.

Accordingly, video controller 302 receives video signals from the AIRcomponents (and/or its internal storage medium) and distributes them toother system components (e.g., television 112, controller client 110,etc.). Video controller 302 can also receive a video stream from asource (e.g., network connection 280, television 112, media archive 202,etc.) and store the stream in one of the A/R components (e.g., mediaarchive 202, media player 212, etc.), and/or its internal storagemedium, for future viewing. For example, video controller 302 can querya web site (e.g., “www.mtv.com”) to download a music video to be playedand/or stored to a system component. To enable distribution overcommunications network 180, video controller 302 provides MPEG encodingon the fly according to embodiments of the present invention. In otherwords, video controller 302 is able to receive, encode, and distribute amedia stream in real time or near term. In embodiments, networkconnection 280 enables video controller 302, or like components, toimplement broadband internet access for audio/video distribution.

Another controller module is audio controller 304. Audio controller 304manages the exchange of audio signals within system 100. Accordingly,audio controller 304 receives and/or distributes audio signals for oneor more audio components, such as, for example, audio client 118 orspeakers coupled to, for example, computer client 106, television 112,monitor 116, controller client 110, etc. Audio controller 304 alsointeracts with the A/R components (e.g., tuner 204, DSS box 206, cablebox 208, media changer 210, media player 212, network connection 280,etc.) to receive audio signals from the A/R components and distributethem to other system components (e.g., audio client 118, controllerclient 110, etc.). Additionally, audio controller 304 can receive anaudio stream from a source (e.g., network connection 280, television112, media archive 202, etc.) and store the stream in one of the A/Rcomponents (e.g., media archive 202, media player 212, etc.) for futurerecall. In embodiments, audio controller 304 reads and/or writes to aninternal storage medium that is designated for audio, and hencedistributes audio to and from its internal storage medium. For example,audio controller 304 can query a web site (e.g., “MP3.com”) to downloada digital recording to be played and/or stored to a system component. Inan embodiment, audio controller 304 encodes the audio stream to MPEG-3format to produce near-CD quality in real time or near time. In anotherembodiment, audio controller 304 encodes the audio stream to produce CDquality audio in real time or near term.

Telephony controller 306 is another controller module within controlserver 114. Telephony controller 306 manages the distribution oftelecommunications from conventional telephone paths and/or computernetworks (e.g., communications network 180, network connection 280,etc.). In an embodiment, telephone 102 is coupled to a conventionalwired or wireless telephone path (not shown), such as POTS or PSTN.Telephone 102 can also be coupled to a cellular or satellitecommunications path (not shown). A dedicated interface (not shown) isprovided to enable the cellular/satellite telephone 102 to interact withsystem 100. Calls received or transmitted over the conventional path arealso monitored and/or controlled by control server 114. As such, controlserver 114 is responsive to distributing signals from the calls to othersystem components. For example, controller client 110 is one potentialrecipient component. Hence, a user is able to directly operatecontroller client 110 to place and/or receive calls indirectly viatelephone 102.

In another embodiment, telephone 102 is coupled to a computer network.Alternatively, a wired or wireless telephone (not shown) that is coupledto computer client 106 is capable of interacting with a computernetwork. The computer network is a LAN or WAN (such as the Internet)that is accessed via communications network 108 or network connection208, or the system components (i.e., telephone 102, computer client 106)can have a dedicated link to a computer network, such that the link isindependent of communications network 180. In an embodiment, thetelecommunications signals are formatted for VoIP or the like.Irrespective of the source of the computer network, thetelecommunications signals from the computer network are monitoredand/or controlled by control server 114. As discussed with reference toconventional telecommunications calls, control server 114 is responsiveto distributing signals from the calls to other system components, suchas, for example, controller client 110.

In addition to answering, placing, and/or distributingtelecommunications calls, control server 114 is operable to performother telephony functions. In an embodiment, control server 114 supportsspeed dialing. Telephone numbers are stored in a memory (such as one ofthe A/R components described with reference to FIG. 2) coupled toresidential control server 114. In another embodiment, control server114 is programmable to implement service blocking. A user is able tocreate a profile to block telephone calls from a designated number orfamily or numbers (e.g., 900 calls, etc.). In yet another embodiment,control server 114 logs inbound/outbound calls and/or enable redialingof past and/or missed calls.

Control server 114 also includes messaging controller 308. Messagingcontroller 308 enables centralized storage of telephone calls receivedvia telephony controller 306 and the like. Voice messages are written toa memory (such as one of the A/R components described with reference toFIG. 2) coupled to control server 114. Messaging controller 308 alsopermits messages (including audio, video, and/or text) to be created,stored, and/or retrieved within system 100. In other words, a user canoperate one of the system components (e.g., controller client 110,telephone 102, audio client 118, etc.) to create a message for the sameor another user. The message can be a “to-do” list, baby-sittinginstructions, grocery list, etc. Messaging controller 308 also enablescontrol server 114 to interact with computer client 106 or other systemcomponents to search and/or retrieve data from computer emails, instantmessaging services, and/or notes, tasks, reminders, and/or events frompersonal calendars.

Control server 114 also includes file sharing controller 310. Filesharing controller 310 enables control server 114 to function as acentral file server for all personal computers in communications withsystem 100. File sharing controller 310 permits files to be stored andaccessed by system components located within the residence that ishosting system 100. However, in an embodiment, devices located outsideof system 100 are able to store and/or retrieve files via file sharingcontroller 310. For example, if a static IP address is sustained by theISP for system 100, a remote user could log into control server 114 toretrieve and/or store files via file sharing controller 310.

X-interface controller 312 is another controller module of controlserver 114. X-interface controller 312 manages access to the systemcomponents from external devices and/or applications, and/or access toexternal devices, applications, and/or web sites from the systemcomponents. As such, x-interface controller 312 provides a gateway toexternal networks, such as the global Internet, other private WANs, orthe like. In an embodiment, x-interface controller 312 supports webproxies and is configurable to block designated web sites in toto or peruser. In another embodiment, x-interface controller is operable to trackand/or record access/visits to web sites from other system components.

X-interface controller 312 supports wired and/or wireless access toexternal networks, including cable and/or satellite ISPs. In anembodiment, x-interface controller 312 permits control server 114 tooperate as a web server, provided the ISP is able to provide a static IPaddress.

Security controller 314 enables control server 114 to interact withand/or manage various security systems, including the communicationssecurity protocols for system 100. In an embodiment, security controller314 controls and/or monitors feedback from system components that form apart of a security system. For example, video (e.g., camera 108, etc.)and audio (audio client 118, camera 108, etc.) can be captured andserved to controller client 110 or monitor 116. Motion sensors can alsobe placed within the residence or in external locations surrounding theresidence. Feedback from the motion sensors can also be transmitted tosecurity controller 314. In an embodiment, such feedback activatescameras 108 and/or audio clients 118 within the vicinity. In anotherembodiment, such feedback activates an alarm or signals the user ofcontroller client 110. To signal the user, controller client 110 canvibrate, ring, flash a message, or the like. Control systems coupled tocamera 108 permit security controller 314 to move and/or focus camera108. In an embodiment, security controller 314 is operable to lock orunlock doors, windows, or entryways in response to user input.

In an embodiment, security controller 314 interfaces with fire andsafety control system. As such, sensors feed into control server 114 andpermit system 100 or a user to monitor emergency situations. Alarms,sprinkler systems, and the like can be operated via control server 114and/or controller client 110.

In addition to home access and fire and safety systems, securitycontroller 314 also interacts with personal asset security systems, suchas safes, file cabinets, rooms, drawers, and the like. Security profilescan be created and maintained to permit selected individuals to accesssecured areas. Passwords, biometrics, and/or the like can be stored andauthenticated to permit access.

Security controller 314 also permits profiles to be established andmaintained to monitor and/or restrict access to web sites, telephonenumbers, television channels, CDs, videocassettes, or the like. In anembodiment, user profiles are established to permit remote access to thesystem components from externally located devices and/or applications.For example, an external user can be authorized via security controller314 to log into control server 114 over the Internet from a remotelocation and receive live feeds from camera 108, archived feeds fromcamera 108, broadcasts from television 112, messages stored viamessaging controller 308, files stored via file sharing controller 310,or the like. For instance, parents could access control server 114 tomonitor their home and/or their children or babysitter while away onvacation or at work.

Control server 114 is not limited to the functions depicted in FIG. 3.Control server 114 can include other modules for controlling theoperations and functions of the various system components, including bymimicking a user's remote-control commands through on-screen menus. Inan embodiment, control server 114 can set or synchronize a clock for oneor more system components, including the A/R components. Control server114 includes a real-time clock that can be set by a user through adirect user interface with control server 114 or through another systemcomponent, such as controller client 110. Alternatively, the real-timeclock can be set via the Internet (i.e., network connection 280).Control server 114 uses its own real-time clock to set the clock ofother system components by navigating the menu system of the respectivesystem component. Since control server 114 tracks and monitors the stateof the system components, control server 114 is programmable to navigatethe menus of the system component to set the clock without interferingwith the component's operations, such as when a movie is playing orrecording.

Instructions for navigating a system component are stored in a databaseor similar library coupled to control server 114. In other words, theinput numbers for navigating the menus of, for example, a VCR or DVDplayer to set or program its internal clock can be memorized. Thememorized numbers are associated with a set of IR codes, which arestored at control server 114. At the appropriate time, the IR codes areretrieved from the IR code database or library, and transmitted to theappropriate media player 212. Upon receipt, the IR codes are executed tonavigate the menus to set the clock. Hence, in addition to setting thetime, IR codes can also be selected to program media player 212 torecord select programs, and the like.

In an embodiment, control server 114 keeps an updated electronic programguide in a database. The electronic program guide (EPG) can be displayedon controller client 110 or like system components for presentation to auser. Control server 114 can obtain the electronic guide from anInternet service, such as GUIDE Plus+® available from Gemstar-TV GuideInternational, Inc. (Pasadena, Calif.). A user can operate controllerclient 110 to select channels based on the electronic guide data and/orselect programs for recording from the electronic guide.

FIG. 20 illustrates an EPG interface 2000 that can be displayed oncontroller client 110 or another system component. EPG interface 2000includes a plurality of channel objects 2002 a-2002 n, with each onerepresenting a “favorite” programming channel as selected by a user. EPGinterface 2000 can be a touch-screen user interface, whereby a finger,stylus, or other device is used to select one of the channel objects2002 a-2002 n. Alternatively, voice recognition, a mouse, cursor arrows,or other pointing devices and/or user interfaces can be used.

In an embodiment, control server 114 includes an EPG controller(operating as an integral or independent component of video controller302) that manages the display of EPG interface 2000 and the channelobjects 2002 a-2002 n. Each of the channel objects 2002 a-2002 n aredirectly or indirectly linked to a switch and/or EPG information for acorresponding favorite channel (e.g., Artsworld, BBC One, Bravo, CNBC,MTV, Cartoon Network, Animal Planet, CNN, Discovery, etc.). As such whenselected and activated, the activated channel object 2002 a-2002 nenables a control message to be transmitted that either retrievesprogramming information for the corresponding channel or switches aselected device (e.g., television 112, tuner 204, DSS box 206, cable box208, etc.) to the corresponding channel.

Referring to FIG. 21, flowchart 2100 shows an example of a control flowfor presenting programming information on an EPG interface, such as EPGinterface 2000. The control flow of flowchart 2100 begins at step 2102and passes immediately to step 2104. At step 2104, an activation signalis received from a user interface, such as touch screen or other inputdevices. As shown in FIG. 22, a user presses and holds one of thechannel objects 2002 a-2002 n to activate the channel object associatewith the MTV programming channel.

Upon activation of a channel object 2002 a-2002 n, a timer is initiatedat step 2106. For example, a clock signal can be generated to incrementa timer register that is initially set at zero. At step 2108, the timervalue is read from, for example, the register.

Should the user release or otherwise deactivate the activated channelobject 2002 a-2002 n, a deactivation signal is generated. At step 2110,the control flow checks for the deactivation signal. If found, thecontrol flow passes immediately to step 2124 as described below.Otherwise, the control flow passes to step 2112.

At step 2112, the timer value from step 2108 is analyzed. If the timervalue is less than two seconds, control passes to step 2114. At step2114, a timer graphic is displayed over the activated channel object2002 a-2002 n. FIG. 22 illustrates an example of a timer graphic 2202that is produced from the activation of a channel object 2002 a-2002 n.Timer graphic 2202 is a dynamic object having two concentric circlesthat are filled over time.

FIG. 23 illustrates another example of timer graphic 2202 with the twoconcentric circles. The concentric circles include a quick-view circle2304 and a jump-to-guide circle 2306. Quick-view circle 2304 is linkedto a quick-view timer, and jump-to-guide circle 2306 is linked to ajump-to-guide timer. In an embodiment, timer graphic 2202, and hence theconcentric circles, start off translucent blue and are filled radiallyand clockwise with another color to indicate the passage of time. Thequick-view timer and jump-to-guide timer are each associated with adifferent, predetermined time threshold, and each concentric circle isfilled at a distinct rate within the corresponding time span, whichexpires at the predetermined time thresholds. For instance, the timethreshold for the quick-view timer can be set at two second, and thetime threshold for the jump-to-guide timer can be set at four seconds.Accordingly, quick-view circle 2304 would radially fill with anothercolor within two seconds. Afterwards, jump-to-guide circle 2306 wouldradially fill with another color within the next two seconds.

This can be explained with reference back to FIG. 21. After the timergraphic 2202 is displayed at step 2114 and the associated timer has beenactivated, the next timer value is read from the timer at step 2116.Assuming that no deactivation signal has been detected at step 2110, thetimer value is compared to the predetermined time thresholds at step2118. If the timer value has reached the predetermined threshold for thequick-view timer, a quick-view object is displayed at step 2120. Forexample, if the timer value is at least two seconds, but less than fourseconds, a quick-view overlay is presented over the timer graphic 2202.

FIG. 24 illustrates a quick-view object 2402 that is produced uponexpiration of the quick-view time threshold. Quick-view object 2402 canbe a small pop-up balloon that displays the program currently beingplayed on the activated channel.

Referring back to step 2118, if the timer value has reached thepredetermined threshold for the jump-to-guide timer, a jump-to-guideobject is displayed at step 2122. For example, if the timer values istwo or more seconds, but less than four seconds, a jump-to-guide windowor frame is displayed that hides the timer graphic 2202.

FIG. 25 illustrates a jump-to-guide window 2500 that displaysprogramming information for the user's “favorite channels” stationlineup. The row containing the activated favorite channel ishighlighted. At this point, the user can release the finger, stylus,and/or other input device from the screen and can freely navigate theprogram guide.

Referring back to step 2110, if a deactivation signal is detected, thetimer value will trigger various events. For example if, at step 2124,the user releases the finger/stylus from the screen before two secondshave elapsed (i.e., the quick-view threshold), then at step 2126, acontrol message (e.g., IR commands) is sent to the appropriate systemcomponent (e.g., television 112, tuner 204, etc.) to switch to theselected favorite channel. Additionally at step 2130, the timer graphic2202 (including the concentric circles 2304 and 2306) is cancelled.

On the other hand, if at step 2128, the user releases the finger/stylusfrom the screen at more than two seconds but before four seconds haveelapsed (i.e., the jump-to-guide threshold), then at step 2130, thejump-to-guide timer is cancelled, the timer graphic 2202 is hidden, thequick-view object 2402 is hidden, and no control message is sent to theappropriate system component.

If the deactivation signal is detected after the expiration of thejump-to-guide threshold (e.g., four or more seconds), the jump-to-guideobject is displayed as discussed above at step 2122. Hence upon displayof the programming information (e.g., jump-to-guide window 2500) at step2122 or cancellation of the timer graphics at step 2130, the controlflow ends as indicated at step 2195.

It should be understood that the timer thresholds (as described, forexample, at steps 2112, 2118, 2124, and 2128, and FIG. 23) have beenprovided by way of example, and not limitation. Different thresholdvalues can be established as desired by the system architect or user.

In addition to setting the configuration of system components, controlserver 114 governs the addition and/or deletion of system components tonetwork control system 100. In an embodiment, a region profile isestablished to track and monitor all devices and/or applications (i.e.,system components) within a specified region of the controlledenvironment. A text-based or graphical user interface enables a user tospecify the dimensions of a region. For instance, a region can be one ormore rooms or designated areas within a room. As discussed above, thepresent invention can also be used to control the operations andfunctions of system components located within the surrounding area of,for example, a home. Therefore, a region can include such externalareas.

Once a region is established, the user can specify the system componentsto be governed by control server 114. Icons and names can be assigned tothe system components, and the user can set or denote the properties. Inan embodiment, system components are automatically detected and added tonetwork 100. A system component announces its presence by broadcasting adiscovery control message on a continuous or periodically scheduledbasis. Control server 114 receives the broadcast and adds the systemcomponent to the profile for that particular region by extracting a nameand properties for the system component from the discovery message. Thesystem component can be automatically added to the region profile, orthe system component can be temporarily added until the user accepts orrejects the addition of system components added via automatic discovery.In an embodiment, an automatically added or removed system component ispresented on a display device (such as, controller client 110). The usercan expressly accept the profile change, or ignore it thereby allowingthe profile change to be automatically approved. With respect toupdating profiles, control server 114 can also explicitly requestthrough a broadcast mechanism that all system components in a regionidentify themselves.

If a system component is removed from network 100 or ceases to broadcastits discovery message, control server 114 maintains the history for thesystem component. Therefore, if the system component is re-connected tonetwork 100, control server 114 retains the state information so thatthe system component would reappear in its previous manifestation (e.g.,same icon, name, region, etc.). If a system component is relocated toanother room, control server 114 updates the state information toautomatically add the system component to the region profile for the newroom. In an embodiment, the user is notified of the change in state, andcan accept or reject the modification.

As discussed above, the present invention supports embodiments that donot include control server 114. As such, the system components canexchange information, including control messages, with each otherwithout a centralized command center. However, in an embodiment,controller client 110 includes some or all of the functionality ofcontrol server 114. The functionality can include video controller 302,audio controller 304, telephony controller 306, messaging controller308, file sharing controller 310, x-interface controller 312, and/orsecurity controller 314. Controller client 110 can also interact andcontrol one or more of the various A/R components, discussed above.Therefore, a user can operate a portable controller client 110 tocontrol the operations and functions of the system components from anylocation.

V. Location Awareness

In embodiments of the present invention, network control system 100tracks and/or monitors the positions of various system components(herein referred to as the “target components”) in real time or nearterm. As a user migrates within the controlled environment that hostssystem 100, the present invention can implement several protocols toenable system 100 to determine a location of a target component andhence, the location of the user in communications with the targetcomponent. In an embodiment, a control center (e.g., control server 114,a local processor coupled to the target component, etc.) determines thecurrent location of the target component (e.g., controller client 110,etc.), and sends instructions to reconfigure the target component tocontrol other system components within a specified vicinity. Forexample, if controller client 110 is determined to be located within adining area, control server 114 enables controller client 110 to becapable of controlling system components positioned in the dining area.Such components can include light dimmers, audio systems, heating unitsfor food servers, or the like.

Positioning devices are utilized in several embodiments for trackingand/or monitoring target components. As described above with referenceto FIG. 1, one or more positioning units 104 are distributed throughoutthe controlled environment that hosts system 100. The positioning units104 can be coupled to a target component (e.g., controller client 110,audio client 118, telephone 102, etc.), or located as a stand-alonedevice within the controlled environment.

In an embodiment, positioning unit 104 is part of a RF communicationssystem. As such, a RF transponder interacts with a RF interrogator tocommunicate positioning information. The transponder is coupled to asystem component and makes available identification information thatuniquely identifies the system component. The transponder can makeavailable other types of information, including an assigned location ofthe system component if the component is a stationary or infrequentlymoved device. Therefore, as described in further detail below, thetransponder can be coupled to either the target component or apositioning component (e.g., positioning unit 104).

The transponder can be active or passive. An active transpondertransmits a continuous or periodic signal containing the identificationinformation. A passive transponder remains inactive and/or silent untilit is activated by, for example, an interrogator, or manually activatedby a user. Therefore, the system component (that includes thetransponder) can operate in a silent mode or active mode. In activemode, the position of the system component (i.e., the target component)is being tracked and/or monitored in real time or near term. In silentmode, the current position of the system component (i.e., the targetcomponent) is not known to system 100 with absolute certainty until thetransponder is activated.

The interrogator is coupled to another system component and receivespositioning information (e.g., identification information or the like)when it comes within the communications range of a transponder. Theinterrogator will automatically receive the positioning information froman active transponder, or will activate a passive transponder to receivethe positioning information.

The interaction between a transponder and an interrogator can beexplained with reference to FIG. 4A and FIG. 4B. FIG. 4A illustrates anembodiment for positioning system components within system 100. Asshown, a transponder 404 is coupled to controller client 110, and aninterrogator 406 is coupled to or embodied within positioning unit 104.As such, as a user 402 carrying controller client 110 enters thevicinity of positioning unit 104 (i.e., interrogator 406), positioningunit 104 receives identification codes from controller client 110. Theidentification codes include an identifier for the transmittingcontroller client 110, or the like. In an embodiment, positioning unit104 sends the identification codes to residential control server 114(described with reference to FIG. 1) for further processing. Positioningunit 104 can also send other identification codes or information withthe identifier for the polled controller client 110. In an embodiment,positioning unit 104 sends a vicinity identifier, or the like, for theregion (e.g., floor, room, etc.) of the residential environment wherepositioning unit 104 is located. In another embodiment, control server114 determines the vicinity identifier from an identifier for thepositioning unit 104. Controller client 110 has been described by way ofexample. Other system components can also be coupled with transponder404 and, thereby, configured to have their locations determined byembodiments of the present invention.

FIG. 4B illustrates another embodiment for positioning a systemcomponent within system 100. As shown, transponder 404 is coupled to orembodied within positioning unit 104. Interrogator 406 is coupled tocontroller client 110. Therefore as user 402 carrying controller client110 enters the vicinity of positioning unit 104 (i.e., transponder 404),controller client 110 receives identification codes from positioningunit 104. The identification codes include an identifier for thetransmitting positioning device 104, a vicinity identifier for theregion (e.g., floor, room, etc.) of the controlled environment, or thelike. In an embodiment, controller client 110 processes theidentification code to determine its location and/or sends theidentification code to control server 114 for archival purposes. Inanother embodiment, controller client 110 sends the identification codeto control server 114 (described with reference to FIG. 1) to determineits location and for further processing. Again, controller client 110has been described by way of example. Other system components can alsobe coupled with an interrogator 406 and, thereby, configured to havetheir locations determined by embodiments of the present invention.

In an embodiment, transponder 404 is an electronic tag, beacon,controller, or the like. The electronic tag is characterized as havingany shape or size, and is located on, or integrated within, the systemcomponent. The electronic tag includes a microprocessor connected tocommunications circuitry that supports RF communications with otherdevices. The microprocessor is coupled to a memory for storinginformation (i.e., identification information) and transceiver forexchanging information with the other devices.

In an embodiment, transponder 404 has a dedicated microprocessor fortransmitting positioning information. In another embodiment, transponder404 utilizes or shares the microprocessor for the hosting systemcomponent (e.g., controller client 110) to exchange positioninginformation. For example, the hosting system component would include aninfrared port that is coupled to a microprocessor and memory located inthe system component. The memory includes the identification informationand related data. The microprocessor interacts with the memory andinfrared port to support exchanges with interrogator 406. As such, theinteraction among the microprocessor, memory and infrared port serves astransponder 404.

Wireless communications between transponder 404 and interrogator 406 aresupported by various technologies. In an embodiment, the Bluetooth™wireless technology (developed by Bluetooth SIG, Inc.) is used toimplement a short-range wireless interface between transponder 404 andinterrogator 406.

In lieu of, or in addition to RF communications, positioning unit 104,in an embodiment, is part of a data collection system using bar codes.In other words, a bar code is disposed to a system component and storesidentification information that uniquely identifies the systemcomponent. As described with reference to a transponder, the bar codecan store other types of information, including the assigned location ofthe system component if the component is a stationary device. A bar codescanner collects the identification information so that the informationcan be processed to determine the location of the system component.

Bar code data collection can also be described with reference to FIG. 4Aand FIG. 4B. In other words, interrogator 406 is a bar code scanner andtransponder 404 is a bar code according to embodiments of the presentinvention. Referring back to FIG. 4A, a bar code 404 is disposed tocontroller client 110 and a bar code scanner 406 is disposed to orembodied within positioning unit 104. As user 402 carrying controllerclient 110 enters the vicinity of positioning unit 104 (i.e., bar codescanner 406), positioning unit 104 receives the identification codescontaining an identifier for the controller client 110. As describedabove with reference to an interrogator, the identification codes, withor without a vicinity identifier, are sent to control server 114(described with reference to FIG. 1) for further processing. Althoughcontroller client 110 has been described by way of example, other systemcomponents can also be coupled with a bar code 404 and, thereby,configured to have their locations determined by embodiments of thepresent invention.

Referring back to FIG. 4B, another embodiment for positioning systemcomponents with bar coding is illustrated. As shown, bar code 404 isdisposed to or embodied within positioning unit 104, and a bar codescanner 406 is disposed to controller client 110. As user 402 carryingcontroller client 110 enters the vicinity of positioning unit 104 (i.e.,bar code 404), controller client 110 receives the identification codescontaining an identifier for the transmitting positioning unit 104. Asdescribed above with reference to a transponder, the identificationcodes, in an embodiment, includes an identifier for the transmittingpositioning device 104, a vicinity identifier for the region of theresidential environment, or the like. The identification codes, with orwithout a vicinity identifier, are processed by controller client 110 todetermine its location, and/or sent to control server 114 (describedwith reference to FIG. 1) for further processing. Although controllerclient 110 has been described by way of example, other system componentscan also be coupled with a bar code scanner 406 and, thereby, configuredto have their locations determined by embodiments of the presentinvention.

The utilization of RF and bar coding technologies represent alternativemethodologies for tracking and/or monitoring the location of systemcomponents. As would be apparent to one skilled in the relevant art(s),other positioning technologies can also be implemented with the presentinvention. For example in larger scaled environments, the use of GPSreceivers, cellular signals, triangulation, or the like are availablealternatives.

In another embodiment, positioning can be realized without the use ofpositioning unit 104. Controller client 110, or the like, is responsiveto receive and process commands from the user operating controllerclient 110. The commands are manually and/or verbally entered intocontroller client 110. Controller client 110 processes the commands, orsends the commands to control server 114, to determine the location. Forexample, the user can specify the location “living room,” and thecontroller client 110 would be profiled to control devices in the livingroom.

In another embodiment, however, voice and/or manual commands can beentered into positioning unit 104 or the like. The user would also enteran identifier for the target component (e.g., controller client 110),and position unit 104 would send control signals to control server 114,or the like, to update the location records of target component.

As described above, the present invention supports various protocols forgathering location information. The present invention provides severalmethods and/or techniques for processing the location information totrack and/or monitor the position or movement of various components ofsystem 100. Referring to FIG. 5, flowchart 500 represents the generaloperational flow of an embodiment of the present invention. Morespecifically, flowchart 500 shows an example of a control flow fortracking and/or monitoring system components within a controlledenvironment.

Referring to FIG. 5, the control flow of flowchart 500 begins at step501 and passes immediately to step 503. At step 503, an appropriatecomponent of system 100 accesses locator codes that correspond to asystem component (i.e., target component) that is being tracked and/ormonitored. Referring back to FIG. 1 and FIG. 2, the present inventioncan determine the current position of any of the aforementioned systemcomponents, including, but not limited to, telephone 102, positioningunit 104, computer client 106, camera 108, controller client 110,television 112, control server 114, monitor 116, audio client 118,residential appliance 120, media archive 202, tuner 204, DSS box 206,cable box 208, media changer 210, media player 212, and/or other devicesand/or applications.

As described above, the present invention includes various embodimentsfor accessing locator codes (or a vicinity identifier as describedabove). For instance, in an embodiment, a user interacts with a text orgraphical interface to manually enter the current location for a targetcomponent. In another embodiment, a voice command interface enables theuser to enter voice commands for a target component. As such, the userverbally communicates the current location.

In an embodiment, a target component interacts with positioning unit 104to access locator codes. Referring back to FIG. 4B, the target component(e.g., controller client 110, etc.) is coupled to interrogator 406.Interrogator 406 polls positioning unit 104 for a vicinity identifier.The vicinity identifier includes locator codes for the current locationfor both system components.

Referring back to FIG. 4A, interrogator 406 is integrated withpositioning unit 104. Hence, a target component (e.g., controller client110, etc.) is polled by interrogator 406. As a result, interrogator 406receives an identifier for the polled target component. Locator codesare produced by associating the identifier with the vicinity identifierfor interrogator 406.

Referring back to FIG. 5 at step 506, the locator codes are sent to acommand center for further positioning processing. In an embodiment, thecommand center is control server 114. In another embodiment, the commandcenter is at the target component (e.g., controller client 110, computerclient 106, etc.).

At step 509, the locator codes are matched to a region. The region canbe a specific floor, hallway, corridor, balcony, room, or the like. Theregion can be a specific area within a floor, hallway, corridor,balcony, room, or the like. The region can also be a specific areawithin an external perimeter of the residence hosting system 100, or anadjoining or free-standing shelter on the residential grounds.

At step 512, the current region is communicated to the target componentand/or stored in the records of control server 114 for future recall.After the system component has been positioned and its positioning datahas been updated, the control flow ends as indicated at step 595.

In an embodiment, the positioning information enables system 100 tocommand and/or control specific system components based on the currentlocation of a user interacting with system 100. This can be describedwith reference to FIG. 6. Flowchart 600, as illustrated in FIG. 6,represents the general operational flow of an embodiment of the presentinvention. More specifically, flowchart 600 shows an example of acontrol flow for commanding and/or controlling system components basedon a user's current location.

Referring to FIG. 6, the control flow of flowchart 600 begins at step601 and passes immediately to steps 503-509. As described with referenceto FIG. 5 at steps 503-509, locator codes enable system 100 to determinethe current location or region of a user interacting with a targetcomponent (e.g., controller client 110).

At step 612, a region profile is accessed for the region. The regionprofile includes a listing of devices and/or applications (i.e., systemcomponents) that receive commands and/or controls from control server114 and/or controller client 110.

At step 615, the region profile is processed to present control optionsfor the user to review. The control options include the listing ofdevices and/or applications corresponding to the region profile. Asdescribed with reference to FIG. 5, the positioning can be determinedremotely at control server 114 or locally at the target component (e.g.,controller client 110). If determined remotely, control server 114, forexample, produces and sends a user interface to display the controloptions on the target component (e.g., controller client 110 or anothersystem component the user is operating). If determined locally, thetarget component (e.g., controller client 110, etc.) retrieves theregion profile to produce the user interface. The region profile can besent to the target component on demand, or the target component can beupdated periodically with available region profiles.

At step 618, the user operates the target component (e.g., controllerclient 110, etc.) to send a request to control a system component (e.g.,television 112, appliance 120, etc.) that is identified in the regionprofile. The user can send a request to control a function and/or anoperation of a system component. The user can send a request to alterthe configuration or security profile for the component. Other controlrequests can be sent as would be apparent to one skilled in the relevantart(s).

At step 621, the control request is executed by the designatedcomponent. The control request can be transmitted directly to thedesignated component, or indirectly to the designated component viacontrol server 114. After the control request has been executed, thecontrol flow ends as indicated by step 695.

For example, if a user is operating controller client 110 and isdetermined by system 100 to be positioned in the “living room,”controller client 110 would receive a user interface for controllingsystem components in the living room. One system component can include,for example, security monitor 116 that receives video input from camera108 located at the front door to the residence. The user can interactwith controller client 110 to pan, tilt, or focus camera 108 to displayan image on monitor 116 of a visitor standing at the front door. Anothersystem component can be television 112, and controller client 110 canreceive a user interface for controlling the volume levels or channelselections for television 112. The user can also interact withcontroller client 110 to alter the settings of HVAC equipment (i.e.,residential appliance 120)

The present invention supports various text, graphical or verbal commandinterfaces for presenting the control options to a user. FIG. 7illustrates an embodiment of a user interface 700 for presentinglocation-specific control options. User interface 700 is produced oncontroller client 110. However, as described herein, a user can operateany of the other system components to send control requests, providedthe system component is configured to produce user interface 700 or thelike.

User interface 700 includes a control options region 702. Controloptions region 702 identifies system components from a region profilefor a designated region. In this example, the region is a living room.System components identified in the region profile for living roominclude television 112 and audio client 118. Component controls 704a-704 b enable a user to send control requests to a corresponding systemcomponent. Component control 704 a corresponds to television 112.Component control 704 b corresponds to audio client 118. Additionalcomponent controls 704 a-704 b can be included to send control requeststo other system components profiled for a particular region.

The region, specified by control options region 702, can be determinedby the positioning embodiments described above, or the region can beuser-specified regardless of the current location of the user ofcontroller client 110. The region is user-specified by activating aregion toggle 706.

Messaging toggle 708 enables the user to interact with messagingcontroller 308 described with reference to FIG. 3. Therefore, the useris able to check email, voice mails, intra-residential messages, or thelike.

Media viewer 710 enables the user to view media from another systemcomponent. For example, the user can interact with component control 704a to view a television program that is currently being broadcast ontelevision 112. The user can also interact with component control 704 bto receive audio from audio client 118.

Although media viewer 710 is shown as a video or multimedia player,media viewer 710 also allows audio signals to be received without video.Media viewer 710 can also be a web browser, or software application forword processing, video games, or the like. Therefore, the user caninteract with control options region 702 and region toggle 706 toreceive text, audio, video, or media and/or multimedia from other systemcomponents from any location within the residential environment hostingsystem 100.

VI. Profiling Controller Client for Personalized Use

The present invention enables a user to operate controller client 110 tocommand and/or control other system components. In an embodiment,controller client 110 only permits the user to control system componentswithin the vicinity of controller client 110. In another embodiment,controller client 110 provides the option of controlling systemcomponents in another region.

In embodiments, control of the various system components is based onpreset profiles established for the user. The profiles can be genericfor all users and/or specifically configured for a specific user. Ifconfigured for a specific user, the present invention utilizes variousprotocols to identify or authenticate a specific user and execute theprofile established for the user. In an embodiment, a username and/orpassword is entered into a system component (e.g., controller client110, etc.). The password can be expressed by a verbal command, text,object, pixel, or the like. In another embodiment, biometrics arecollected by a system component. As such, retinal, iris, facial, palm,fingerprint, and/or voice recognition technologies, or the like areimplemented to identify and/or authenticate a user. In anotherembodiment, a user card is read by a system component (e.g., controllerclient 110, etc.). Other user identification and/or authenticationtechniques can be used to identify and/or authenticate a user. Thepresent invention permits the user to alter the profile, as appropriate.The identification and/or authentication techniques, described above,prevent other users from altering or deleting the user profile after ithas been established.

In embodiments, the present invention enables a user to establish aprofile to store a “favorite” setting for the system components. Forexample, a favorite setting can be established for televisionprogramming, audio/video recordings, room temperature, hot tub controls,clock alarms, light/dimmer settings, web sites, news broadcasts,financial channels, or the like.

In embodiments, the user can establish a profile to create a “playlist.”For example, a series of video or audio recordings can be preparedand/or stored for playback on, for example, television 112 or audioclient 118. A sequence of graphic images or photographs can be preparedand/or stored for playback on, for example, monitor 116 or computerclient 106. A playlist of other forms or media and/or multimedia canalso be created according to embodiments of the present invention, aswould be apparent to one skilled in the relevant art(s).

In embodiments, a profile can be created to establish a securityprotocol for the system components. For example, a profile can becreated to block certain content from being accessed by designatedusers. Non-adult users, for instance, can be prevented from accessingdesignated television channels, web sites, areas (such as, lockablerooms, drawers, safes, etc.), or the like.

In embodiments, the present invention enables a single user to establishmultiple profiles. Each of the multiple profiles can be tailored forcontext-sensitive activity. For instance, a user can create a profilefor evening entertainment, which includes, without limitation, presetsfor lighting, audio/video presentations, security access warnings, hottub controls, or the like. Another profile can be established for homeoffice activities, which includes, without limitation, presets for ababy monitor, a playlist of classical recordings, coffee maker timercontrols, or the like. A profile can be established for morning rituals,which includes, without limitation, presets for alarm/snooze controls,coffee maker timer controls, lighting, news broadcasts, or the like.

A user can also establish multiple profiles for use with otherindividuals. For example, a user can have a profile with securitycontrols set to block certain televisions programming, web sites, audiorecordings, or the like when in the company of minors. However, when inthe company of adults, the user can recall another profile with moreliberal security settings.

As such, the present invention enables various system components (e.g.,controller client 110, etc.) to be user aware in addition to beinglocation aware. Thus for example, controller client 110 can becustomized per user based on the aforementioned user profiles. Inembodiments, the user awareness functionality permits system 100 toimplement “follow-me” system controls. For instance, “follow-me” videois implemented to transfer a selected video production to variousdisplays throughout the controlled environment. The user would operate,for example, controller client 110 to select a video production (e.g.,television show, DVD recording, or the like). The video production canbe presented on controller client 110 (e.g., media viewer 710 describedwith reference to FIG. 7). As the user migrates from room to room withinthe controlled environment, system 100 tracks controller client 110 andretrieves a region profile for each region. Therefore, as the userenters a new region or room, a monitor 116 or television 112 located inthe room will automatically start to display the video productionselected by controller client 110.

Similarly, “follow-me” audio can be implemented by the presentinvention. As such, the user can operate, for example, controller client110 to select an audio production (e.g., CD recording, radio broadcast,etc.). As the user migrates from room to room, the positioningtechniques of the present invention enable system 100 to transfer theaudio production to the audio clients 118, monitors 116, or the likethat are located in the vicinity of controller client 110.

“Follow-me” lighting is another exemplary implementation of the presentinvention. As a user, carrying controller client 110, enters or leave aroom, system 100 sends commands to dim or turn on/off the lights basedon the profile settings.

In an embodiment, one or more control macros can be established tocontrol the operations and/or functions of the system components. Acontrol macro includes a set of commands that, when executed, enablescontrol server 114 to control multiple operations and/or functions ofone or more system components. The control macro (i.e., set of commands)can be associated with a control macro filename for future recall andexecution.

A user can define a control macro by operating controller client 110,computer client 106, or a user interface in communications with controlserver 114. In an embodiment, a graphical user interface can beimplemented to enable a user to define a new control macro. FIG. 9provides an example for defining a control macro according to anembodiment of the present invention. Flowchart 900 shows an example of acontrol flow for defining a control macro to watch a movie recorded onDVD.

Referring to FIG. 9, the control flow of flowchart 900 begins at step901 when the user triggers a record-macro command to distinguish themacro recording mode from normal system operations. At step 903, theuser operates one of the aforementioned devices (i.e., controller client110, computer client 106, or a user interface to control server 114) toselect a room containing the system component (e.g., television 112,monitor 116, etc.) that the user intends to use to view the movie.

At step 906, the region profile for the selected room is recalled. Asdiscussed above, a region profile identifies all system componentslocated in a designated region. In an embodiment, the region profilesare stored at control server 114, which retrieves and makes theappropriate region profile available to the user.

At step 909, the user reviews the region profile and selects a viewingsystem component (e.g., television 112). The user also specifies thevideo input for a DVD source. The user can specify any desired settings,including but not limited to, contrast, brightness, and the like.

At step 912, the user specifies the desired audio settings. In anembodiment, the user sets the volume level for the viewing systemcomponent (e.g., television 112). In another embodiment, the userselects external speakers (e.g., audio client 118) to be used inaddition to, or in lieu of, the internal speakers for the viewing systemcomponent (e.g., television 112).

At step 915, the user selects the desired DVD movie from media changer210. Alternatively, if a DVD player (i.e., media player 212) is locatedin the same room with the selected viewing system component (e.g.,television 112), the user can instruct media player 212 to begin playingthe movie currently loaded, or simply open the media bay and wait forthe user to manually insert the desired DVD.

At step 918, the user specifies the settings for lighting appliances 120denoted in the region profile. The user can dim the lighting to adesired comfort level. In an embodiment, lighting appliance 120 includesthe RadioRA home dimming system available from Lutron ElectronicsCompany, Inc. (Coopersburg, Pa.). As such, the present invention enablesthe creation of control commands for operating the RadioRA dimmingsystem. Referring back to FIG. 12, lighting appliance 120 is anexemplary lighting system that is controlled by a signal repeater 1202for a dimming system, such as Lutron's RadioRA or X-10 dimming systems.

At step 921, the control commands for executing the specifications fortelevision 112, audio client 118 (if selected), media player 212 (ormedia changer 210), and lighting appliance 120 are collectivelyassociated with a common control macro.

At step 924, the user saves the control macro and gives it a filename,such as “watch movie.” In an embodiment using controller client 110 tocreate macro “watch movie,” the user can associate the macro to aspecific macro button or icon. Therefore, when the user activates the“watch movie” macro button, all of the associated commands forimplementing the user's pre-specified selections are recalled andexecuted, so that television 112 is ready to play the desired movie.After the control macro is created and saved, it is ready for activationand the control flow ends as indicated at step 995.

In an embodiment, the commands associated with a specific control macroare stored at control server 114, or in a database or library affiliatedwith control server 114 or media archive 202. Therefore, in anembodiment using controller client 110 to execute a control macro,controller client 110 enables a user to associate a control macro with acontrol macro button or icon. When executed, the control macro buttontransmits a generic command to control server 114. Control server 114,in turn, retrieves the set of commands associated the generic command,and transmits the set of commands to the appropriate system componentsfor execution. In other words, the present invention enables a mobiledevice, such as controller client 110, to transmit a single high-levelrequest to a centralized command center, such as control server 114.Control server 114 interprets the single request according to itsenvironment (e.g., user, location) and finds the corresponding sequenceof commands that needs to be transmitted over communications network180, which includes wireless (or powerline) communications.

Alternatively, according to an embodiment of the present invention, acontrol macro can be created automatically by the control server 114based on the particular devices existing in a selected room or region,either as known by the control server through stored room profiles or asdetected in real time by the control server as the room profile iscreated. For example, if the control server detects that a room such asthe living room has a DVD player and a TV, the control server willautomatically build a basic “watch movie” macro comparable to the macrodescribed above, which can be further customized by the user.

FIG. 10 illustrates an example for activating a control macro accordingto an embodiment of the present invention. Flowchart 1000 shows acontrol flow for activating the control macro of flowchart 900, whichpertains to watching a movie recorded on DVD.

Referring to FIG. 10, the control flow of flowchart 1000 begins at step1001 and passes immediately to steps 1003. At step 1003, the useractivates the “watch movie” control macro defined in step 901-995.

At step 1006, the set of commands associated with the “watch movie”control macro is recalled from their storage location. The set ofcommands includes the user-predefined specifications for controlling thefunctions and/or operations of the specified system components. In thisexample, the set of commands associated with the “watch movie” controlmacro includes commands for altering lighting appliance 120, activatingmedia changer 210 (or media player 212), and activating television 112.If the user desires to listen to the movie on a home stereo speakersystem, the set of commands would also include commands for activatingthe appropriate audio system component (e.g., audio client 118).

In an embodiment using controller client 110 to activate the controlmacro, controller client 110 transmits a generic command that wasassociated with the “watch movie” control macro. The generic command issent to control server 114, which recalls the set of commands associatedwith the generic command for the “watch movie” control macro.

At step 1009, the room and system components (i.e., television 112,media changer 210 or media player 212, lighting appliance 120, audioclient 118) are identified from the set of commands. In the exampledescribed with reference to FIG. 9, the room is specified in the controlmacro. However, in another embodiment, the control macro, itself, doesnot need to be room specific. As discussed above, the present inventionincludes methodologies and/or techniques for tracking the location of auser or controller device 110. Therefore, the user can request toactivate a control macro (such as, the “watch movie” control macro) towatch a movie in any room the user is currently located. As such,control server 114 would designate the user's current location as beingthe room for implementing the control macro. Likewise, control server114 can retrieve the room profile for the user's current location andidentify the viewing components, media player, and lighting componentsthat are located in the designated room.

At step 1012, device access permission is validated for each systemcomponent identified at step 1009. As discussed above, restrictions onoperating various system components can be established and policed bysecurity controller 314. Accordingly, the present invention providesmethodologies and/or techniques for identifying or authenticating theuser that is requesting the “watch movie” control macro, as well as fordetermining if the user is authorized to operate the system components(including the actual DVD) designated in the control macro. If the useris determined to lack authorization for accessing the designated systemcomponents, a message can be sent to inform the user that access hasbeen blocked.

At step 1015, the present invention determines which commands areassociated with each system component identified at step 1009. Forexample, the control commands for specifying the viewer settings arequeued for television 112. Similarly, the control commands forspecifying the lighting settings are queued for lighting appliance 120.

In an embodiment, control server 114 apportions the component-specificcommands for each system component. The component-specific commands areencoded and sent to the designated system component via the appropriateprotocol. Control server 114 also updates its records for tracking thestate of each system component.

At step 1018, each system component receives and executes thecomponent-specific commands. As such, the lighting (i.e., appliance 120)in the specified room is automatically dimmed, the specified television112 is turned-on and configured as predefined, and the specified DVDplayer (media changer 210 or media player 212) is similarly activated.Depending on the speaker options specified in the control macro, audio118 is also activated and waits to receive audio feed from the DVDplayer.

At step 1021, a control screen is sent to the user interface that theuser operated to activate the control macro. If controller client 110 isused, the control screen is presented on the display to designate thatthe control macro has been properly executed and the DVD movie is readyto commence playing (or the DVD player is ready to receive the desiredmovie, if this option is selected). Afterwards, the control flow ends asindicated at step 1095.

VII. Exemplary System Implementation

FIGS. 1-7 are conceptual illustrations allowing an explanation of thepresent invention. It should be understood that embodiments of thepresent invention could be implemented in hardware, firmware, software,or a combination thereof. In such an embodiment, the various componentsand steps would be implemented in hardware, firmware, and/or software toperform the functions of the present invention. That is, the same pieceof hardware, firmware, or module of software could perform one or moreof the illustrated blocks (i.e., components or steps).

Additionally, the present invention can be implemented in one or morecomputer systems or other processing systems, capable of carrying outthe functionality described herein. Referring to FIG. 8, an examplecomputer system 800 useful in implementing the present invention isshown. Various embodiments are described in terms of this exemplarycomputer system 800. After reading this description, it will becomeapparent to a person skilled in the relevant art(s) how to implement theinvention using other computer systems and/or computer architectures.

The computer system 800 includes one or more processors, such asprocessor 804. Processor 804 can be a special purpose or a generalpurpose digital signal processor. The processor 804 is connected to acommunication infrastructure 806 (e.g., a communications bus, cross-overbar, or network).

Computer system 800 can include a display interface 802 that forwardsgraphics, text, and other data from the communication infrastructure 806(or from a frame buffer not shown) for display on the display unit 830.

Computer system 800 also includes a main memory 808, preferably randomaccess memory (RAM), and can also include a secondary memory 810. Thesecondary memory 810 can include, for example, a hard disk drive 812and/or a removable storage drive 814, representing a floppy disk drive,a magnetic tape drive, an optical disk drive, etc. The removable storagedrive 814 reads from and/or writes to a removable storage unit 818 in awell-known manner. Removable storage unit 818, represents a floppy disk,magnetic tape, optical disk, etc. which is read by and written toremovable storage drive 814. As will be appreciated, the removablestorage unit 818 includes a computer usable storage medium having storedtherein computer software (e.g., programs or other instructions) and/ordata.

In alternative embodiments, secondary memory 810 includes other similarmeans for allowing computer programs or other instructions to be loadedinto computer system 800. Such means include, for example, a removablestorage unit 822 and an interface 820. Examples of such means include aprogram cartridge and cartridge interface (such as that found in videogame devices), a removable memory chip (such as, an EPROM or PROM) andassociated socket, and other removable storage units 822 and interfaces820 which allow software and data to be transferred from the removablestorage unit 822 to computer system 800.

Computer system 800 can also include a communications interface 824.Communications interface 824 allows software and/or data to betransferred between computer system 800 and external devices. Examplesof communications interface 824 include a modem, a network interface(such as an Ethernet card), a communications port, a PCMCIA slot andcard, etc. Software and data transferred via communications interface824 are in the form of signals 828 which can be electronic,electromagnetic, optical or other signals capable of being received bycommunications interface 824. These signals 828 are provided tocommunications interface 824 via a communications path (i.e., channel)826. Communications path 826 carries signals 828 and can be implementedusing wire or cable, fiber optics, a phone line, a cellular phone link,an RF link, free-space optics, and other communications channels.

In this document, the terms “computer program medium” and “computerusable medium” are used to generally refer to media such as removablestorage unit 818, removable storage unit 822, a hard disk installed inhard disk drive 812, and signals 828. These computer program productsare means for providing software to computer system 800. The invention,in an embodiment, is directed to such computer program products.

Computer programs (also called computer control logic or computerreadable program code) are stored in main memory 808 and/or secondarymemory 810. Computer programs can also be received via communicationsinterface 824. Such computer programs, when executed, enable thecomputer system 800 to implement the present invention as discussedherein. In particular, the computer programs, when executed, enable theprocessor 804 to implement the processes of the present invention, suchas the method(s) implemented using residential control server 114,controller client 110, computer client 106, and/or other systemcomponents of system 100 described above, such as methods 500 and/or600, for example. Accordingly, such computer programs representcontrollers of the computer system 800.

In an embodiment where the invention is implemented using software, thesoftware can be stored in a computer program product and loaded intocomputer system 800 using removable storage drive 814, hard drive 812 orcommunications interface 824. The control logic (software), whenexecuted by the processor 804, causes the processor 804 to perform thefunctions of the invention as described herein.

In another embodiment, the invention is implemented primarily inhardware using, for example, hardware components such as applicationspecific integrated circuits (ASICs). Implementation of a hardware statemachine so as to perform the functions described herein will be apparentto persons skilled in the relevant art(s).

In yet another embodiment, the invention is implemented using acombination of both hardware and software.

While various embodiments of the present invention have been describedabove, it should be understood that they have been presented by way ofexample, and not limitation. It will be apparent to persons skilled inthe relevant art(s) that various changes in form and detail can be madetherein without departing from the spirit and scope of the invention.Moreover as previously discussed, it should be understood that themethod, system, and computer program product of the present inventionshould not be limited to a residential environment. The presentinvention can be implemented in other types of environments having acentral processing system for distributing media and sending commandand/or control signals to a plurality of devices and/or applicationsdispersed throughout a designated region. In addition to a residence,the designated region includes, but is not limited to, office complexes,suite of small offices, production studios, warehouses, entertainmentarenas, health care facilities, hotels, vacation resorts, aircrafts,ships, automobiles, or the like. Thus, the present invention should notbe limited by any of the above-described exemplary embodiments, butshould be defined only in accordance with the following claims and theirequivalents.

1. A method of presenting programming information on a display coupledto a processing device, comprising: accessing user input to activate achannel object depicted on the display and associated with a programmingchannel; producing on the display a quick-view object that presentsprogramming information for a program listed for transmission on theprogramming channel associated with the channel object when the channelobject is activated for a first time period; and producing on thedisplay a jump-to-guide object that presents an electronic program guidelisting programming information for a plurality of programming channelswhen the channel object is activated for a second time period thatexceeds the first time period.
 2. The method of claim 1, furthercomprising: activating a timer associated with the channel object. 3.The method of claim 1, further comprising: producing on the display atimer graphic that includes two concentric circles having an innercircle and an outer circle.
 4. The method of claim 3, furthercomprising: filling the inner circle in a radial direction over a periodof time equivalent to the first time period.
 5. The method of claim 3,further comprising: filling the outer circle in a radial direction overa period of time equivalent to the second time period.
 6. The method ofclaim 3, further comprising: canceling the display of the timer graphicwhen the channel object is deactivated prior to the expiration of thefirst time period.
 7. The method of claim 3, further comprising:canceling the display of the timer graphic and the quick-view object ifthe channel object is deactivated prior to the expiration of the secondtime period.
 8. The method of claim 1, further comprising: highlightingthe programming channel associated with the channel object in theelectronic program guide.
 9. The method of claim 1, further comprising:deactivating the channel object prior to the expiration of the firsttime period.
 10. The method of claim 9, further comprising: sending acontrol message that, when executed, controls an operation and/or afunction of a remote device.
 11. The method of claim 10, whereinexecution of the control message comprises: converting the controlmessage into executable instructions to switch the remote device to theprogramming channel associated with the channel object.
 12. The methodof claim 1, further comprising: deactivating the channel object prior tothe expiration of the second time period.
 13. The method of claim 12,further comprising: canceling the display of the quick-view object ifthe channel object is deactivated prior to the expiration of the secondtime period.
 14. A method of presenting programming information on adisplay coupled to a processing device, comprising: accessing user inputto activate a channel object depicted on the display and associated witha programming channel; transmitting instructions to switch a device tothe programming channel associated with the channel object if thechannel object is activated for a time period that does not exceed aspecified value; transmitting instructions to display a quick-viewobject that presents programming information for a program listed fortransmission on the programming channel associated with the channelobject if the channel object is activated for a time period equivalentto the specified value; and transmitting a command to display ajump-to-guide object that presents an electronic program guide listingprogramming information for a plurality of programming channels if thechannel object is activated for a time period exceeding the specifiedvalue.
 15. A method of displaying programming information, comprising:displaying a plurality of channel objects depicted on the userinterface, wherein each channel object is associated with a programmingchannel; displaying at least one timer associated with the plurality ofchannel objects, wherein the at least one timer is responsive to asignal indicating the activation of a channel object; displaying aquick-view object that presents programming information for a programlisted for transmission on the programming channel associated with anactivated channel object, wherein the quick-view object is composited onan image that includes the activated channel object; and displaying ajump-to-guide object that presents an electronic program guide listingprogramming information for the programming channels associated with theplurality of channel objects, wherein the jump-to-guide object iscomposited on an image that includes the activated channel object. 16.The method of claim 15, further comprising: displaying a timer graphicthat includes an inner circle and an outer circle, wherein the timergraphic is composited on an image that includes the activated channelobject.
 17. The method of claim 16, further comprising: modifying avisual characteristic of the inner circle over a time period thatexpires when a timer reaches a first time value, wherein the timer isinitiated upon activation of the activated channel object.
 18. Themethod of claim 17, further comprising: modifying a visualcharacteristic of the outer circle over a time period that expires whenthe timer reaches a second time value, wherein the second time valueexceeds the first time value, wherein the timer is initiated uponactivation of the activated channel object.
 19. A computer programproduct comprising a computer useable medium having computer readableprogram code functions embedded in the medium for causing a computer topresent programming information on a display, comprising: a firstcomputer readable program code function that causes the computer todisplay a plurality of channel objects, wherein each channel object isassociated with a programming channel; a second computer readableprogram code function that causes the computer to access user inputindicating activation of a channel object from the plurality of channelobjects; a third computer readable program code function that causes thecomputer to display a quick-view object that presents programminginformation for a program listed for transmission on the programmingchannel associated with the activated channel object; and a fourthcomputer readable program code function that causes the computer todisplay a jump-to-guide object that presents an electronic program guidelisting programming information for the programming channels associatedwith the plurality of channel objects.
 20. The computer program productof claim 19, further comprising: a fifth computer readable program codefunction that causes the computer to initiate at least one timerassociated with at least one of the plurality of channel objects,wherein the second computer readable program code function is responsiveto a signal indicating the activation of a channel object.
 21. Thecomputer program product of claim 19, further comprising: a fifthcomputer readable program code function that causes the computer todisplay a timer graphic that includes an inner circle and an outercircle.
 22. The computer program product of claim 21, furthercomprising: a sixth computer readable program code function that causesthe computer to modify a visual characteristic of the inner circle overa time period that expires when a timer reaches a first time value,wherein the timer is initiated upon activation of the activated channelobject.
 23. The computer program product of claim 22, furthercomprising: a seventh computer readable program code function thatcauses the computer to modify a visual characteristic of the outercircle over a time period that expires when the timer reaches a secondtime value, wherein the second time value exceeds the first time value,wherein the timer is initiated upon activation of the activated channelobject.
 24. The computer program product of claim 19, furthercomprising: a fifth computer readable program code function that causesthe computer to transmit instructions to switch a device to theprogramming channel associated with the activated channel object if thechannel object is activated for a time period that does not exceed aspecified value.
 25. The computer program product of claim 19, whereinthe third computer readable program code function comprises: computerreadable program code that causes the computer to display the quick-viewobject if a timer associated with the activated channel object reaches aspecified value.
 26. The computer program product of claim 19, whereinthe fourth computer readable program code function comprises: computerreadable program code that causes the computer to display thejump-to-guide object if a timer associated with the activated channelobject exceeds the specified value.
 27. A cradle for a remote controldevice, comprising: a receptacle configured to hold the remote controldevice; a communications interface for exchanging communications with aplurality of network components located throughout a controlledenvironment; and a power supply port having an electrical connection tothe receptacle, wherein the power supply port is configured to supplypower to the remote control device when the remote control device isbeing held within the receptacle.
 28. The cradle of claim 27, furthercomprising: a control center for controlling an operation and/or afunction of the network components.
 29. The cradle of claim 28, whereinthe communications interface includes: first means for exchangingcommunications between the remote control device and the control center;and second means for sending a control request to one or more of thenetwork components.
 30. The cradle of claim 27, wherein thecommunications interface includes an Ethernet interface thatcommunicatively couples the cradle with at least one of the networkcomponents.
 31. The cradle of claim 27, wherein the communicationsinterface includes a wireless interface that communicatively couples thecradle with at least one of the network components.
 32. The cradle ofclaim 27, wherein the communications interface includes an infraredinterface that communicatively couples the cradle with at least one ofthe network components.
 33. The cradle of claim 27, wherein thecommunications interface includes a bridge interface for convertingpacket-based data signals to infrared signals or serial signals.
 34. Thecradle of claim 27, wherein the communications interface includes aserial interface for communicatively coupling the cradle with aserial-enabled legacy device.
 35. The cradle of claim 27, wherein thecommunications interface includes a powerline interface thatcommunicatively couples the cradle to a powerline network.
 36. Thecradle of claim 27, wherein the power supply port includes a powerlineinterface that communicatively couples the cradle to a powerlinenetwork.
 37. The cradle of claim 27, further comprising: an LEDindicator for indicating a status of power connectivity or networkconnectivity.
 38. A system for distributing information within acontrolled environment, comprising: a plurality of network componentslocated throughout the controlled environment; a remote control deviceconfigured to send a control request to one or more of the networkcomponents; and a cradle, wherein the cradle includes a receptacle forholding the controller means, and wherein the cradle further includes acommunications interface for exchanging communications with one or moreof the network components.
 39. The system of claim 38, wherein thecradle is a platform for a control center that controls an operationand/or a function of the network components.
 40. The system of claim 38,further comprising: positioning means for tracking and/or monitoring alocation or a movement of at least one of the network components. 41.The system of claim 40, wherein the remote control device is configuredto interact with the positioning means, and wherein the remote controldevice is further configured to send a control request to one or more ofthe network components located within a vicinity of the remote controldevice.
 42. The system of claim 38, wherein the communications interfaceincludes a power supply port having an electrical connection to thereceptacle, wherein the power supply port is configured to supply powerto the remote control device when the remote control device is beingheld within the receptacle.
 43. The system of claim 38, wherein thecommunications interface includes an Ethernet interface thatcommunicatively couples the cradle with at least one of the networkcomponents.
 44. The system of claim 38, wherein the communicationsinterface includes an infrared interface that communicatively couplesthe cradle with at least one of the network components.
 45. The systemof claim 38, wherein the communications interface includes an LEDindicator for indicating a status of power connectivity or networkconnectivity.
 46. A method of distributing information within acontrolled environment, comprising: operating a remote control device tosend a request to a control center located in a cradle that includes areceptacle for holding the portable device; receiving the request andprocessing the request by the control center; and controlling anoperation or a function of one or more devices or applications inresponse to the request.
 47. The method of claim 46, further comprising:supplying power to the remote control device when the portable device isbeing held within the receptacle.
 48. The method of claim 46, whereinthe controlling comprises: communicating a control signal over anEthernet interface to control the operation or the function of the oneor more devices or applications.
 49. The method of claim 46, wherein thecontrolling comprises: communicating a control signal over a wirelessinterface to control the operation or the function of the one or moredevices or applications.
 50. The method of claim 46, wherein thecontrolling comprises: communicating a control signal over an infraredinterface to control the operation or the function of the one or moredevices or applications.
 51. The method of claim 46, wherein thecontrolling comprises: communicating over a bridge interface; andconverting packet-based data signals to infrared signals or serialsignals to thereby control the operation or the function of the one ormore devices or applications.
 52. The method of claim 46, wherein thecontrolling comprises: communicating a control signal over a serialinterface to control the operation or the function of a serial-enabledlegacy device.
 53. The method of claim 46, wherein the controllingcomprises: communicating a control signal over a powerline interface tocontrol the operation or the function of the one or more devices orapplications.
 54. A system for managing a plurality of networkcomponents within a controlled environment, comprising: a control centerfor controlling an operation and/or a function of the plurality ofnetwork components; and a platform for enabling communications among thenetwork components and the control center over a wired or wirelessmedium, wherein the platform is a ceiling fan, a light fixture, a wallswitch, a carbon dioxide detector, or a wall outlet.
 55. The system ofclaim 54, wherein the platform comprises: first means for enablingcommunications with the network components over a wireless medium; andsecond means for enabling communications with the control center over awired medium.
 56. The system of claim 54, further comprising: aninfrared-serial bridge coupled to the platform, wherein theinfrared-serial bridge includes means for enabling communications amongthe network controller and the network components over a wirelessmedium.
 57. The system of claim 54, further comprising: a remote controldevice that is configured to send a control request to one or more ofthe network components.
 58. The system of claim 54, further comprising:positioning means for tracking and/or monitoring a location or amovement of at least one of the network components.
 59. The system ofclaim 58, wherein the remote control device is communicatively coupledto the control center and the positioning means, and wherein the remotecontrol device is further configured to send a control request to one ormore of the network components located within a vicinity of the remotecontrol means.
 60. The system of claim 54, further comprising: a remotecontrol device that is configured to send a control request to one ormore of the network components.
 61. The system of claim 60, furthercomprising: a cradle that includes a receptacle for holding the remotecontrol device, wherein the cradle is a platform for a control centerthat controls an operation and/or a function of the network components.62. The system of claim 60, further comprising: a cradle that includes areceptacle for holding the remote control device, wherein the cradleincludes a communications interface for exchanging communications with aplurality of network components located throughout a controlledenvironment.
 63. A device for managing a plurality of network componentswithin a controlled environment, comprising: transmitter means forsending communications to at least one of the network components over awireless medium, wherein the device is a ceiling fan, a light fixture, awall switch, a carbon dioxide detector, or a wall outlet.
 64. The deviceof claim 63, further comprising: receiver means for accessingcommunications from at least one of the network components over wirelessmedium.
 65. The device of claim 64, wherein at least one of the receivermeans or the transmitter means include a wired interface to at least oneof the network components.
 66. The device of claim 63, furthercomprising: a control center for controlling an operation and/or afunction of the plurality of network components.
 67. The device of claim63, wherein the device is communicatively coupled to a control centerfor controlling an operation and/or a function of the plurality ofnetwork components, wherein the control center is remotely located fromthe device.